package com.qf.hello;

import com.qf.util.ConnUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import org.junit.Test;

public class Publisher {

    @Test
    public void publish() throws Exception {
        //1. 获取连接对象
        Connection connection = ConnUtil.getConnection();

        //2. 创建Channel通道
        Channel channel = connection.createChannel();


        //3. 创建队列(hello-queue)
        //3.1 queue：队列名称
        //3.2 durable： 队列是否持久化（重启后再创建）
        //3.3 exclusive： 是否排外（当前队列只能有一个消费者）
        //3.4 autoDelete：如果没有消费者队列自动删除
        //3.5 arguments：队列的其他参数
        channel.queueDeclare("hello-queue",true,false,false,null);

        //4. 发送消息到默认的交换机 - hello-queue
        String msg = "Hello World!";
        //4.1 exchange： 交换机名称，默认的交换机叫 空串
        //4.2 routingKey： 交换机和队列绑定的规则，现在使用的是默认交换机，默认交换机是direct，direct默认就是routingKey叫什么，就把消息路由到指定队列
        //4.3 props： 消息其他的属性
        //4.4 body： 具体消息
        channel.basicPublish("","hello-queue",null,msg.getBytes());


        System.out.println("消息发送出去啦！！！");
    }



}
